package dao.interfaces;

import java.util.List;

import dao.transferObjects.UsuarioTO;
import dao.transferObjects.UsuarioUnificadoTO;
import dao.transferObjects.Administrador.AdministradorTO;
import dao.transferObjects.Docente.DocenteTO;
import dao.transferObjects.Gae.AlumnoTO;
import dao.transferObjects.Gae.GaeTO;
import dao.transferObjects.Socio.DireccionTO;
import dao.transferObjects.Socio.SocioTO;

public interface ICuentaUsuario {
	
	public int crearUsuarioAdmin(AdministradorTO admin);
	public int crearUsuarioDocente(DocenteTO docente);
	public int crearUsuarioSocio(SocioTO socio);
	public int crearDireccionSocio(SocioTO socio, DireccionTO direccion);
	
	public int crearUsuarioGae(GaeTO gae, UsuarioTO usuario, List<AlumnoTO> array_alumnos);
	
	public int modificarUsuarioAdmin(AdministradorTO admin);
	public int modificarUsuarioDocente(DocenteTO docente);
	public int modificarUsuarioSocio(SocioTO socio);
	public int modificarDireccionSocio(SocioTO socio, DireccionTO direccion);
	public int modificarUsuarioGae(GaeTO gae);
	
	public int eliminarUsuarioAdmin(AdministradorTO admin);
	public int eliminarUsuarioDocente(DocenteTO docente);
	public int eliminarUsuarioSocio(SocioTO socio);
	public int eliminarUsuarioGae(GaeTO gae);
	
	public UsuarioUnificadoTO obtenerUsuarioAdmin(int rut);
	public UsuarioUnificadoTO obtenerUsuarioDocente(int rut);
	public UsuarioUnificadoTO obtenerUsuarioSocio(int rut);
	public GaeTO obtenerUsuarioGae(GaeTO gae);
	
	public List<AdministradorTO> obtenerTodosUsuarioAdmin();
	public List<DocenteTO> obtenerTodosUsuarioDocente();
	public List<UsuarioUnificadoTO> obtenerTodosUsuarioSocio();
	public List<GaeTO> obtenerTodosUsuarioGae();
	
	public List<UsuarioUnificadoTO> obtenerTodosUsuarioUnidicadoTO();
	public UsuarioUnificadoTO obtenerUsuarioLogeado(int rutUsuario, String tipoUsuario);
}
